using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Marlimer; 
using Marlimer.Logical.Sistema;
using Marlimer.Common;

namespace Marlimer.Start
{
    public partial class frm_InicioSesion : Form
    {

        private Boolean terminar = false;

        public frm_InicioSesion()
        {
            InitializeComponent();
        }

        private void btn_Aceptar_Click(object sender, EventArgs e)
        {
            if (txt_Password.Text.Trim() == "" || txt_Usuario.Text.Trim() == "")
            {
                MessageBox.Show("Debe ingresar el nombre de usuario y password", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                lsis_Usuario lsis_usuario = new lsis_Usuario();
                resulOMsgError resulO = new resulOMsgError();

                resulO = lsis_usuario.logUsuario(txt_Usuario.Text.Trim(), Util.encryptar(txt_Password.Text), Convert.ToInt32(cboAplicacion.SelectedValue));
                if (resulO.resul)
                {
                    //establecer valores para la session
                    Session.setComputerName(SystemInformation.ComputerName);
                    Session.setInfoUsuario((InfoUsuario)resulO.clase);
                    if (Convert.ToInt32(cboAplicacion.SelectedValue) == 1)
                    {   //comercial
                        Comercial.MDI_Principal MDI_Principal = new Comercial.MDI_Principal();
                        MDI_Principal.Show();
                    }
                    else
                    {
                        //logistico
                        Logistico.MDI_Principal MDI_Principal = new Marlimer.Logistico.MDI_Principal();
                        MDI_Principal.Show();
                    }
                    this.Visible = false;
                }
                else
                {
                    MessageBox.Show(resulO.message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }   
            }   
        }

        private void btn_Cancelar_Click(object sender, EventArgs e)
        {
            this.Close(); 
        }

        private void frm_InicioSesion_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (this.Visible)
            {
                if (MessageBox.Show("Seguro que desea cerrar?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    terminar = true;
                }
                else
                {
                    e.Cancel = true;
                }
            }
        }

        private void frm_InicioSesion_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (terminar)
            {
                Application.Exit(); 
            }
        }

        private void frm_InicioSesion_Load(object sender, EventArgs e)
        {
            //cargar el datacombo.
            lsis_Sistema lsis_applicacion = new lsis_Sistema();
            
            Util.LlenarDataCombo(lsis_applicacion.getDTApplicacion(), cboAplicacion, false);  

        }
        /*
        public static void LlenarDataCombo(DataTable dt, ComboBox cbo, Boolean val)
        {
            if (dt != null)
            {
                cbo.DataSource = dt;
                cbo.ValueMember = dt.Columns[0].ColumnName;
                cbo.DisplayMember = dt.Columns[1].ColumnName;
                if (val)
                {
                    cbo.SelectedIndex = -1;
                }
            }
        }
         * */
    }
}